<?php
/**
 *  Data Access Object for Log Table
 */
class StudenteDao extends Dao {
	//! A constructor
	/**
	* Constructs the LogDao
	* @param $da instance of the DataAccess class
	*/
	function StudenteDao ( & $da ) 
	{
		Dao::Dao($da);
	}

	//! An accessor
	/**
	* Gets a log files
	* @return object a result object
	*/
	function & searchAll() 
	{
		$sql='SELECT 
  "Studente"."Matricola", 
  "Studente"."Data di nascita", 
  "Studente"."Anno immatricolazione", 
  "Studente"."Email", 
  "Studente"."Cognome", 
  "Studente"."Nome"
FROM 
  public."Studente";';
		
		return $this->retrieve($sql);
	}




function & getAttivitaStudente($matricola)
	 {

		$sql='SELECT
  "Attivita"."Descrizione", 
  "Attivita"."Luogo", 
  "Attivita"."Tipo"
FROM 
  public."Studente" JOIN  public."Aderenza" 
  ON  "Studente"."Matricola" = "Aderenza"."Fk_Matricola" JOIN  public."Attivita" 
  ON "Aderenza"."Fk_IdAttivita" = "Attivita"."IdAttivita"
WHERE 
  "Studente"."Matricola" = '.$matricola.'';
		
		return $this->retrieve($sql);
	}
	function & getStudenteByCorsoStudio($corso){
		$sql='SELECT 
  "Corso di Studio"."Nome", 
  "Studente"."Matricola", 
  "Studente"."Data di nascita", 
  "Studente"."Email", 
  "Studente"."Nome", 
  "Studente"."Cognome", 
  "Studente"."Anno immatricolazione"
FROM 
  public."Corso di Studio", 
  public."Studente"
WHERE 
  "Corso di Studio"."IdCorsoStudio" = "Studente"."Fk_IdCorsoStudio"	
  AND "Corso di Studio"."Nome" LIKE \'%'.$corso.'%\';';	
		
		
 
  
return $this->retrieve($sql);


	}
	
	function & getMatricolaByCorso($corso){
		$sql='SELECT 
 	 "Studente"."Matricola"
  	FROM 
 	 public."Studente"
	WHERE 
 	 "Studente"."Fk_IdCorsoStudio" ='.$corso.';';	
 
  	return $this->retrieve($sql);
  	
	}
	
	function & getNomeCognomeByMatricola($matricola){
		$sql='SELECT 
 	 "Studente"."Nome",
 	 "Studente"."Cognome"
  	FROM 
 	 public."Studente"
	WHERE 
 	 "Studente"."Matricola" ='.$matricola.';';	
 
  	return $this->retrieve($sql);
  	
	}
	
	function & getStudenteByMatricola($matricola)
	{
		$sql='SELECT 
  "Studente"."Matricola", 
  "Studente"."Data di nascita", 
  "Studente"."Anno immatricolazione", 
  "Studente"."Email", 
  "Studente"."Nome", 
  "Studente"."Cognome",
  "Studente"."Fk_IdCorsoStudio",
  "Edizione Corso"."Fk_IdAnno"
FROM 
  public."Studente",
  public."Edizione Corso" 
WHERE 
  "Edizione Corso"."IdEdizioneCorso" = "Studente"."Fk_IdEdizioneCorso" AND
  "Studente"."Matricola" = '.$matricola.';';	
	
		return $this->retrieve($sql);

	}
	function & getStudenteByNomeCognome($nome)
	{
	$split= explode(' ',$nome);
	$sql='SELECT 
  "Studente"."Matricola", 
  "Studente"."Data di nascita", 
  "Studente"."Anno immatricolazione", 
  "Studente"."Email", 
  "Studente"."Nome", 
  "Studente"."Cognome"
FROM 
  public."Studente"
WHERE "Studente"."Matricola"<>0';
	foreach ($split as $vara){
  $sql.=' AND ("Studente"."Nome" LIKE \'%'.$vara.'%\'  OR 
  "Studente"."Cognome" LIKE \'%'.$vara.'%\')';	
	}
	 $sql.=';';
		return $this->retrieve($sql);

	}
function & insertStudente($Matricola,$Data_di_nascita,$Nome,
		$Cognome,$Fk_IdAnno,$Fk_IdCorsoStudio, $Fk_IdEdizioneCorso,$annoImmatricolazione)
	{
		$sql='INSERT INTO "Studente"(
            "Matricola", "Data di nascita", "Anno immatricolazione", 
            "Nome", "Cognome", "Fk_IdEdizioneCorso", "Fk_IdCorsoStudio")
    VALUES ('.$Matricola.', \''.$Data_di_nascita.'\', \''.$annoImmatricolazione.'\', 
            \''.$Nome.'\',  \''.$Cognome.'\', '.$Fk_IdEdizioneCorso.',
             '.$Fk_IdCorsoStudio.');'; 

      		return $this->update($sql);
	}
	function & updateStudente($Matricola,$Data_di_nascita,$Nome,
		$Cognome,$Fk_IdAnno,$Fk_IdCorsoStudio, $Fk_IdEdizioneCorso,$annoImmatricolazione)
	{
		$sql='UPDATE "Studente"
   SET "Matricola"='.$Matricola.', 
   "Data di nascita"=\''.$Data_di_nascita.'\', 
   "Anno immatricolazione"=\''.$annoImmatricolazione.'\', 
   "Nome"=\''.$Nome.'\', 
   "Cognome"=\''.$Cognome.'\', 
   "Fk_IdEdizioneCorso"='.$Fk_IdEdizioneCorso.',
   "Fk_IdCorsoStudio"='.$Fk_IdCorsoStudio.'
   WHERE "Matricola"='.$Matricola.';';

		return $this->update($sql);
	}
	
	
	function & deleteStudente($matricola){

		$sql='DELETE FROM "Studente"
 WHERE "Studente"."Matricola"='.$matricola.';';
		return $this->retrieve($sql);

	}
	function & Delete_candidato($matricola)
	{
		$sql='UPDATE "Studente"
   SET "Fk_IdSeduta"='.Null.'
   WHERE "Matricola"='.$matricola.';';

		return $this->update($sql);
	}
	
	
}
?>